<?php
/*
 * @开发工具: JetBrains PhpStorm.
 * @文件名：IIpToAddress.class.php
 * @类功能: 通过IP获取省市区
 * @开发者: cxl
 * @开发时间： 14-10-28
 * @版本：version 1.0
 */
namespace app\common\ext;

use app\common\cache\common\IAreaCache;
use Think\Image;

class IIpToAddress {
    /**
     * @功能 通过IP获取国家、省份、城市
     * @开发者：cxl
     * @return array
     */
    public static function getInfo() {
        //取得客户端IP地址
        $ip = get_client_ip();

        //判断IP地址是否正确
        $json = array();
        if(!empty($ip) || $ip != "127.0.0.1"){
            //根据IP地址获取城市名称
            $json = @file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip={$ip}");

            //判断json数据是否存在
            if(!empty($json)){
                //解析json信息
                $json = json_decode($json,true);
                if(is_array($json) && isset($json['code']) && ($json['code'] == 0)){
                    //设置数据
                    $json = $json['data'];
                }
            }
        }

        //判断城市是否获取
        $address = array();
        if(isset($json['country']) && (md5($json['country']) == "c13dceabcb143acd6c9298265d618a9f")){
            //取得城市信息
            $area_where['acronym'] = array("like","%{$json['city']}%");
            $area_where['area_type'] = 2;
            $area_info = IDb::getInstance("com_area")->setDbWhere($area_where)->setDbFiled("area_id,parent_id")->row();

            //判断数据是否存在
            if(!empty($area_info['area_id'])){
                $address['province_id'] = $area_info['parent_id'];
                $address['city_id'] = $area_info['area_id'];
            }
        }

        //判断数据是否为空
        if(empty($address)){
            //取得系统模式城市
            $default_location = IConfig::getValue("DefaultLocation");
            if(empty($default_location)){
                $default_location = 2;
            }

            //取得省份编号
            $province_id = IAreaCache::getInfo($default_location,"parent_id");
            if(empty($province_id)){
                $province_id = 1;
            }

            //设置信息
            $address['province_id'] = $province_id;
            $address['city_id'] = $default_location;
        }

        //返回值
        return $address;
    }
}